<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8"/>
    <title>Test Report</title>
    <link href="assets/style.css" rel="stylesheet" type="text/css"/></head>
  <body onLoad="init()">
    <script>/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 * You can obtain one at http://mozilla.org/MPL/2.0/. */


function toArray(iter) {
    if (iter === null) {
        return null;
    }
    return Array.prototype.slice.call(iter);
}

function find(selector, elem) {
    if (!elem) {
        elem = document;
    }
    return elem.querySelector(selector);
}

function find_all(selector, elem) {
    if (!elem) {
        elem = document;
    }
    return toArray(elem.querySelectorAll(selector));
}

function sort_column(elem) {
    toggle_sort_states(elem);
    var colIndex = toArray(elem.parentNode.childNodes).indexOf(elem);
    var key;
    if (elem.classList.contains('numeric')) {
        key = key_num;
    } else if (elem.classList.contains('result')) {
        key = key_result;
    } else {
        key = key_alpha;
    }
    sort_table(elem, key(colIndex));
}

function show_all_extras() {
    find_all('.col-result').forEach(show_extras);
}

function hide_all_extras() {
    find_all('.col-result').forEach(hide_extras);
}

function show_extras(colresult_elem) {
    var extras = colresult_elem.parentNode.nextElementSibling;
    var expandcollapse = colresult_elem.firstElementChild;
    extras.classList.remove("collapsed");
    expandcollapse.classList.remove("expander");
    expandcollapse.classList.add("collapser");
}

function hide_extras(colresult_elem) {
    var extras = colresult_elem.parentNode.nextElementSibling;
    var expandcollapse = colresult_elem.firstElementChild;
    extras.classList.add("collapsed");
    expandcollapse.classList.remove("collapser");
    expandcollapse.classList.add("expander");
}

function show_filters() {
    var filter_items = document.getElementsByClassName('filter');
    for (var i = 0; i < filter_items.length; i++)
        filter_items[i].hidden = false;
}

function add_collapse() {
    // Add links for show/hide all
    var resulttable = find('table#results-table');
    var showhideall = document.createElement("p");
    showhideall.innerHTML = '<a href="javascript:show_all_extras()">Show all details</a> / ' +
                            '<a href="javascript:hide_all_extras()">Hide all details</a>';
    resulttable.parentElement.insertBefore(showhideall, resulttable);

    // Add show/hide link to each result
    find_all('.col-result').forEach(function(elem) {
        var collapsed = get_query_parameter('collapsed') || 'Passed';
        var extras = elem.parentNode.nextElementSibling;
        var expandcollapse = document.createElement("span");
        if (extras.classList.contains("collapsed")) {
            expandcollapse.classList.add("expander")
        } else if (collapsed.includes(elem.innerHTML)) {
            extras.classList.add("collapsed");
            expandcollapse.classList.add("expander");
        } else {
            expandcollapse.classList.add("collapser");
        }
        elem.appendChild(expandcollapse);

        elem.addEventListener("click", function(event) {
            if (event.currentTarget.parentNode.nextElementSibling.classList.contains("collapsed")) {
                show_extras(event.currentTarget);
            } else {
                hide_extras(event.currentTarget);
            }
        });
    })
}

function get_query_parameter(name) {
    var match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search);
    return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}

function init () {
    reset_sort_headers();

    add_collapse();

    show_filters();

    sort_column(find('.initial-sort'));

    find_all('.sortable').forEach(function(elem) {
        elem.addEventListener("click",
                              function(event) {
                                  sort_column(elem);
                              }, false)
    });

};

function sort_table(clicked, key_func) {
    var rows = find_all('.results-table-row');
    var reversed = !clicked.classList.contains('asc');
    var sorted_rows = sort(rows, key_func, reversed);
    /* Whole table is removed here because browsers acts much slower
     * when appending existing elements.
     */
    var thead = document.getElementById("results-table-head");
    document.getElementById('results-table').remove();
    var parent = document.createElement("table");
    parent.id = "results-table";
    parent.appendChild(thead);
    sorted_rows.forEach(function(elem) {
        parent.appendChild(elem);
    });
    document.getElementsByTagName("BODY")[0].appendChild(parent);
}

function sort(items, key_func, reversed) {
    var sort_array = items.map(function(item, i) {
        return [key_func(item), i];
    });

    sort_array.sort(function(a, b) {
        var key_a = a[0];
        var key_b = b[0];

        if (key_a == key_b) return 0;

        if (reversed) {
            return (key_a < key_b ? 1 : -1);
        } else {
            return (key_a > key_b ? 1 : -1);
        }
    });

    return sort_array.map(function(item) {
        var index = item[1];
        return items[index];
    });
}

function key_alpha(col_index) {
    return function(elem) {
        return elem.childNodes[1].childNodes[col_index].firstChild.data.toLowerCase();
    };
}

function key_num(col_index) {
    return function(elem) {
        return parseFloat(elem.childNodes[1].childNodes[col_index].firstChild.data);
    };
}

function key_result(col_index) {
    return function(elem) {
        var strings = ['Error', 'Failed', 'Rerun', 'XFailed', 'XPassed',
                       'Skipped', 'Passed'];
        return strings.indexOf(elem.childNodes[1].childNodes[col_index].firstChild.data);
    };
}

function reset_sort_headers() {
    find_all('.sort-icon').forEach(function(elem) {
        elem.parentNode.removeChild(elem);
    });
    find_all('.sortable').forEach(function(elem) {
        var icon = document.createElement("div");
        icon.className = "sort-icon";
        icon.textContent = "vvv";
        elem.insertBefore(icon, elem.firstChild);
        elem.classList.remove("desc", "active");
        elem.classList.add("asc", "inactive");
    });
}

function toggle_sort_states(elem) {
    //if active, toggle between asc and desc
    if (elem.classList.contains('active')) {
        elem.classList.toggle('asc');
        elem.classList.toggle('desc');
    }

    //if inactive, reset all other functions and add ascending active
    if (elem.classList.contains('inactive')) {
        reset_sort_headers();
        elem.classList.remove('inactive');
        elem.classList.add('active');
    }
}

function is_all_rows_hidden(value) {
  return value.hidden == false;
}

function filter_table(elem) {
    var outcome_att = "data-test-result";
    var outcome = elem.getAttribute(outcome_att);
    class_outcome = outcome + " results-table-row";
    var outcome_rows = document.getElementsByClassName(class_outcome);

    for(var i = 0; i < outcome_rows.length; i++){
        outcome_rows[i].hidden = !elem.checked;
    }

    var rows = find_all('.results-table-row').filter(is_all_rows_hidden);
    var all_rows_hidden = rows.length == 0 ? true : false;
    var not_found_message = document.getElementById("not-found-message");
    not_found_message.hidden = !all_rows_hidden;
}
</script>
    <h1>20211029201740.html</h1>
    <p>Report generated on 29-Oct-2021 at 20:19:00 by <a href="https://pypi.python.org/pypi/pytest-html">pytest-html</a> v2.1.1</p>
    <h2>Environment</h2>
    <table id="environment">
      <tr>
        <td>JAVA_HOME</td>
        <td>D:\Program Files\Java\jdk1.8.0_151</td></tr>
      <tr>
        <td>Packages</td>
        <td>{"pluggy": "0.13.1", "py": "1.10.0", "pytest": "5.3.2"}</td></tr>
      <tr>
        <td>Platform</td>
        <td>Windows-10-10.0.19041-SP0</td></tr>
      <tr>
        <td>Plugins</td>
        <td>{"Faker": "9.5.1", "allure-pytest": "2.8.10", "html": "2.1.1", "metadata": "1.11.0", "parallel": "0.1.0"}</td></tr>
      <tr>
        <td>Python</td>
        <td>3.8.5</td></tr></table>
    <h2>Summary</h2>
    <p>5 tests ran in 79.65 seconds. </p>
    <p class="filter" hidden="true">(Un)check the boxes to filter the results.</p><input checked="true" class="filter" data-test-result="passed" hidden="true" name="filter_checkbox" onChange="filter_table(this)" type="checkbox"/><span class="passed">1 passed</span>, <input checked="true" class="filter" data-test-result="skipped" disabled="true" hidden="true" name="filter_checkbox" onChange="filter_table(this)" type="checkbox"/><span class="skipped">0 skipped</span>, <input checked="true" class="filter" data-test-result="failed" hidden="true" name="filter_checkbox" onChange="filter_table(this)" type="checkbox"/><span class="failed">4 failed</span>, <input checked="true" class="filter" data-test-result="error" disabled="true" hidden="true" name="filter_checkbox" onChange="filter_table(this)" type="checkbox"/><span class="error">0 errors</span>, <input checked="true" class="filter" data-test-result="xfailed" disabled="true" hidden="true" name="filter_checkbox" onChange="filter_table(this)" type="checkbox"/><span class="xfailed">0 expected failures</span>, <input checked="true" class="filter" data-test-result="xpassed" disabled="true" hidden="true" name="filter_checkbox" onChange="filter_table(this)" type="checkbox"/><span class="xpassed">0 unexpected passes</span>
    <h2>Results</h2>
    <table id="results-table">
      <thead id="results-table-head">
        <tr>
          <th class="sortable result initial-sort" col="result">Result</th>
          <th class="sortable" col="name">Test</th>
          <th class="sortable numeric" col="duration">Duration</th>
          <th>Links</th></tr>
        <tr hidden="true" id="not-found-message">
          <th colspan="4">No results found. Try to check the filters</th></tr></thead>
      <tbody class="failed results-table-row">
        <tr>
          <td class="col-result">Failed</td>
          <td class="col-name">test_cases/test_login.py::test_add_repost</td>
          <td class="col-duration">15.91</td>
          <td class="col-links"></td></tr>
        <tr>
          <td class="extra" colspan="4">
            <div><div><img src="D:\python0818\auto_frame\report\test_login.py_test_add_repost.png" alt="screenshot" style="width:304px;height:228px;" οnclick="window.open(this.src)" align="right"/></div></div>
            <div class="log">self = &lt;page.index.Index_page object at 0x000002742886AFD0&gt;<br/>elemnt = (&#x27;css selector&#x27;, &#x27;body &gt; div.introjs-tooltipReferenceLayer &gt; div &gt; div.introjs-tooltip-header &gt; a&#x27;)<br/><br/>    def find_element(self,elemnt):<br/>        if elemnt[0] not in [By.ID,By.CLASS_NAME,By.CSS_SELECTOR,By.XPATH,By.LINK_TEXT,By.NAME,By.PARTIAL_LINK_TEXT,By.TAG_NAME]:<br/>            logger.error(&#x27;find element error %s&#x27; %str(elemnt))<br/>            return<br/>    <br/>    <br/>        try:<br/>&gt;           WebDriverWait(self.driver, seting.WAIT_TIMEOUT).until(ec.visibility_of_element_located((elemnt)))<br/><br/>base\webelement.py:103: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;selenium.webdriver.support.wait.WebDriverWait (session=&quot;d55ae85f803350ec45ece8307a69661c&quot;)&gt;<br/>method = &lt;selenium.webdriver.support.expected_conditions.visibility_of_element_located object at 0x0000027428874550&gt;<br/>message = &#x27;&#x27;<br/><br/>    def until(self, method, message=&#x27;&#x27;):<br/>        &quot;&quot;&quot;Calls the method provided with the driver as an argument until the \<br/>        return value is not False.&quot;&quot;&quot;<br/>        screen = None<br/>        stacktrace = None<br/>    <br/>        end_time = time.time() + self._timeout<br/>        while True:<br/>            try:<br/>                value = method(self._driver)<br/>                if value:<br/>                    return value<br/>            except self._ignored_exceptions as exc:<br/>                screen = getattr(exc, &#x27;screen&#x27;, None)<br/>                stacktrace = getattr(exc, &#x27;stacktrace&#x27;, None)<br/>            time.sleep(self._poll)<br/>            if time.time() &gt; end_time:<br/>                break<br/>&gt;       raise TimeoutException(message, screen, stacktrace)<br/><span class="error">E       selenium.common.exceptions.TimeoutException: Message:</span><br/><br/>D:\Python38\lib\site-packages\selenium\webdriver\support\wait.py:80: TimeoutException<br/><br/>During handling of the above exception, another exception occurred:<br/><br/>driver = &lt;selenium.webdriver.chrome.webdriver.WebDriver (session=&quot;d55ae85f803350ec45ece8307a69661c&quot;)&gt;<br/><br/>    def test_add_repost(driver):<br/>    <br/>        login = Login_page(driver)<br/>        index = Index_page(driver)<br/>        repost = Repost_page(driver)<br/>    <br/>        login.login(&#x27;meteor&#x27;,&#x27;admin123&#x27;)<br/>&gt;       index.close_introjs_skipbutton()<br/><br/>test_cases\test_login.py:28: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/>page\index.py:107: in close_introjs_skipbutton<br/>    self.click((By.CSS_SELECTOR,&quot;body &gt; div.introjs-tooltipReferenceLayer &gt; div &gt; div.introjs-tooltip-header &gt; a&quot;))<br/>base\webelement.py:145: in click<br/>    self.find_element(element).click()<br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;page.index.Index_page object at 0x000002742886AFD0&gt;<br/>elemnt = (&#x27;css selector&#x27;, &#x27;body &gt; div.introjs-tooltipReferenceLayer &gt; div &gt; div.introjs-tooltip-header &gt; a&#x27;)<br/><br/>    def find_element(self,elemnt):<br/>        if elemnt[0] not in [By.ID,By.CLASS_NAME,By.CSS_SELECTOR,By.XPATH,By.LINK_TEXT,By.NAME,By.PARTIAL_LINK_TEXT,By.TAG_NAME]:<br/>            logger.error(&#x27;find element error %s&#x27; %str(elemnt))<br/>            return<br/>    <br/>    <br/>        try:<br/>            WebDriverWait(self.driver, seting.WAIT_TIMEOUT).until(ec.visibility_of_element_located((elemnt)))<br/>            logger.info(&#x27;find element %s&#x27; %elemnt[1])<br/>            return self.driver.find_element(elemnt[0],elemnt[1])<br/>        except TimeoutException as ts:<br/>            # 如果定位元素超时，记录error日志<br/>            logger.error(&#x27;element find error %s&#x27; %str(elemnt))<br/>&gt;           raise TimeoutException<br/><span class="error">E           selenium.common.exceptions.TimeoutException: Message: None</span><br/><br/>base\webelement.py:109: TimeoutException<br/> -----------------------------Captured stderr setup------------------------------ <br/>2021-10-29 20:17:47,723   driver   __init__   INFO：  已经打开chrome浏览器
<br/> -------------------------------Captured log setup------------------------------- <br/>INFO     main:driver.py:33 已经打开chrome浏览器<br/> ------------------------------Captured stderr call------------------------------ <br/>2021-10-29 20:17:47,725   webelement   __init__   INFO：  打开chrome浏览器
2021-10-29 20:17:51,283   webelement   get   INFO：  跳转到地址：https://cloud.huaxiaerp.vip
2021-10-29 20:17:51,284   webelement   __init__   INFO：  打开chrome浏览器
2021-10-29 20:17:52,141   webelement   get   INFO：  跳转到地址：https://cloud.huaxiaerp.vip
2021-10-29 20:17:52,141   webelement   __init__   INFO：  打开chrome浏览器
2021-10-29 20:17:52,900   webelement   get   INFO：  跳转到地址：https://cloud.huaxiaerp.vip
2021-10-29 20:17:52,940   webelement   find_element   INFO：  find element #loginName
2021-10-29 20:17:53,062   webelement   send_keys   INFO：  exec inout element:(&#x27;css selector&#x27;, &#x27;#loginName&#x27;) , key word:meteor
2021-10-29 20:17:53,095   webelement   find_element   INFO：  find element password
2021-10-29 20:17:53,234   webelement   send_keys   INFO：  exec inout element:(&#x27;id&#x27;, &#x27;password&#x27;) , key word:admin123
2021-10-29 20:17:53,258   webelement   find_element   INFO：  find element #formLogin &gt; div:nth-child(4) &gt; div &gt; div &gt; span &gt; button
2021-10-29 20:17:53,321   webelement   click   INFO：  click element (&#x27;css selector&#x27;, &#x27;#formLogin &gt; div:nth-child(4) &gt; div &gt; div &gt; span &gt; button&#x27;)
2021-10-29 20:18:03,633   webelement   find_element   ERROR：  element find error (&#x27;css selector&#x27;, &#x27;body &gt; div.introjs-tooltipReferenceLayer &gt; div &gt; div.introjs-tooltip-header &gt; a&#x27;)
<br/> -------------------------------Captured log call-------------------------------- <br/>INFO     main:webelement.py:80 打开chrome浏览器
INFO     main:webelement.py:90 跳转到地址：https://cloud.huaxiaerp.vip
INFO     main:webelement.py:80 打开chrome浏览器
INFO     main:webelement.py:90 跳转到地址：https://cloud.huaxiaerp.vip
INFO     main:webelement.py:80 打开chrome浏览器
INFO     main:webelement.py:90 跳转到地址：https://cloud.huaxiaerp.vip
INFO     main:webelement.py:104 find element #loginName
INFO     main:webelement.py:140 exec inout element:(&#x27;css selector&#x27;, &#x27;#loginName&#x27;) , key word:meteor
INFO     main:webelement.py:104 find element password
INFO     main:webelement.py:140 exec inout element:(&#x27;id&#x27;, &#x27;password&#x27;) , key word:admin123
INFO     main:webelement.py:104 find element #formLogin &gt; div:nth-child(4) &gt; div &gt; div &gt; span &gt; button
INFO     main:webelement.py:146 click element (&#x27;css selector&#x27;, &#x27;#formLogin &gt; div:nth-child(4) &gt; div &gt; div &gt; span &gt; button&#x27;)
ERROR    main:webelement.py:108 element find error (&#x27;css selector&#x27;, &#x27;body &gt; div.introjs-tooltipReferenceLayer &gt; div &gt; div.introjs-tooltip-header &gt; a&#x27;)<br/></div></td></tr></tbody>
      <tbody class="failed results-table-row">
        <tr>
          <td class="col-result">Failed</td>
          <td class="col-name">test_cases/test_login.py::test_delete_repost</td>
          <td class="col-duration">16.16</td>
          <td class="col-links"></td></tr>
        <tr>
          <td class="extra" colspan="4">
            <div><div><img src="D:\python0818\auto_frame\report\test_login.py_test_delete_repost.png" alt="screenshot" style="width:304px;height:228px;" οnclick="window.open(this.src)" align="right"/></div></div>
            <div class="log">self = &lt;page.index.Index_page object at 0x0000027428907490&gt;<br/>elemnt = (&#x27;css selector&#x27;, &#x27;body &gt; div.introjs-tooltipReferenceLayer &gt; div &gt; div.introjs-tooltip-header &gt; a&#x27;)<br/><br/>    def find_element(self,elemnt):<br/>        if elemnt[0] not in [By.ID,By.CLASS_NAME,By.CSS_SELECTOR,By.XPATH,By.LINK_TEXT,By.NAME,By.PARTIAL_LINK_TEXT,By.TAG_NAME]:<br/>            logger.error(&#x27;find element error %s&#x27; %str(elemnt))<br/>            return<br/>    <br/>    <br/>        try:<br/>&gt;           WebDriverWait(self.driver, seting.WAIT_TIMEOUT).until(ec.visibility_of_element_located((elemnt)))<br/><br/>base\webelement.py:103: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;selenium.webdriver.support.wait.WebDriverWait (session=&quot;66aca1424556a79aa4e5807ba8d9b0e4&quot;)&gt;<br/>method = &lt;selenium.webdriver.support.expected_conditions.visibility_of_element_located object at 0x0000027428907310&gt;<br/>message = &#x27;&#x27;<br/><br/>    def until(self, method, message=&#x27;&#x27;):<br/>        &quot;&quot;&quot;Calls the method provided with the driver as an argument until the \<br/>        return value is not False.&quot;&quot;&quot;<br/>        screen = None<br/>        stacktrace = None<br/>    <br/>        end_time = time.time() + self._timeout<br/>        while True:<br/>            try:<br/>                value = method(self._driver)<br/>                if value:<br/>                    return value<br/>            except self._ignored_exceptions as exc:<br/>                screen = getattr(exc, &#x27;screen&#x27;, None)<br/>                stacktrace = getattr(exc, &#x27;stacktrace&#x27;, None)<br/>            time.sleep(self._poll)<br/>            if time.time() &gt; end_time:<br/>                break<br/>&gt;       raise TimeoutException(message, screen, stacktrace)<br/><span class="error">E       selenium.common.exceptions.TimeoutException: Message:</span><br/><br/>D:\Python38\lib\site-packages\selenium\webdriver\support\wait.py:80: TimeoutException<br/><br/>During handling of the above exception, another exception occurred:<br/><br/>driver = &lt;selenium.webdriver.chrome.webdriver.WebDriver (session=&quot;66aca1424556a79aa4e5807ba8d9b0e4&quot;)&gt;<br/><br/>    def test_delete_repost(driver):<br/>    <br/>        login = Login_page(driver)<br/>        index = Index_page(driver)<br/>        repost = Repost_page(driver)<br/>    <br/>        login.login(&#x27;meteor&#x27;, &#x27;admin123&#x27;)<br/>&gt;       index.close_introjs_skipbutton()<br/><br/>test_cases\test_login.py:43: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/>page\index.py:107: in close_introjs_skipbutton<br/>    self.click((By.CSS_SELECTOR,&quot;body &gt; div.introjs-tooltipReferenceLayer &gt; div &gt; div.introjs-tooltip-header &gt; a&quot;))<br/>base\webelement.py:145: in click<br/>    self.find_element(element).click()<br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;page.index.Index_page object at 0x0000027428907490&gt;<br/>elemnt = (&#x27;css selector&#x27;, &#x27;body &gt; div.introjs-tooltipReferenceLayer &gt; div &gt; div.introjs-tooltip-header &gt; a&#x27;)<br/><br/>    def find_element(self,elemnt):<br/>        if elemnt[0] not in [By.ID,By.CLASS_NAME,By.CSS_SELECTOR,By.XPATH,By.LINK_TEXT,By.NAME,By.PARTIAL_LINK_TEXT,By.TAG_NAME]:<br/>            logger.error(&#x27;find element error %s&#x27; %str(elemnt))<br/>            return<br/>    <br/>    <br/>        try:<br/>            WebDriverWait(self.driver, seting.WAIT_TIMEOUT).until(ec.visibility_of_element_located((elemnt)))<br/>            logger.info(&#x27;find element %s&#x27; %elemnt[1])<br/>            return self.driver.find_element(elemnt[0],elemnt[1])<br/>        except TimeoutException as ts:<br/>            # 如果定位元素超时，记录error日志<br/>            logger.error(&#x27;element find error %s&#x27; %str(elemnt))<br/>&gt;           raise TimeoutException<br/><span class="error">E           selenium.common.exceptions.TimeoutException: Message: None</span><br/><br/>base\webelement.py:109: TimeoutException<br/> -----------------------------Captured stderr setup------------------------------ <br/>2021-10-29 20:18:07,388   driver   __init__   INFO：  已经打开chrome浏览器
<br/> -------------------------------Captured log setup------------------------------- <br/>INFO     main:driver.py:33 已经打开chrome浏览器<br/> ------------------------------Captured stderr call------------------------------ <br/>2021-10-29 20:18:07,390   webelement   __init__   INFO：  打开chrome浏览器
2021-10-29 20:18:10,888   webelement   get   INFO：  跳转到地址：https://cloud.huaxiaerp.vip
2021-10-29 20:18:10,888   webelement   __init__   INFO：  打开chrome浏览器
2021-10-29 20:18:11,875   webelement   get   INFO：  跳转到地址：https://cloud.huaxiaerp.vip
2021-10-29 20:18:11,876   webelement   __init__   INFO：  打开chrome浏览器
2021-10-29 20:18:12,849   webelement   get   INFO：  跳转到地址：https://cloud.huaxiaerp.vip
2021-10-29 20:18:12,894   webelement   find_element   INFO：  find element #loginName
2021-10-29 20:18:13,019   webelement   send_keys   INFO：  exec inout element:(&#x27;css selector&#x27;, &#x27;#loginName&#x27;) , key word:meteor
2021-10-29 20:18:13,042   webelement   find_element   INFO：  find element password
2021-10-29 20:18:13,189   webelement   send_keys   INFO：  exec inout element:(&#x27;id&#x27;, &#x27;password&#x27;) , key word:admin123
2021-10-29 20:18:13,218   webelement   find_element   INFO：  find element #formLogin &gt; div:nth-child(4) &gt; div &gt; div &gt; span &gt; button
2021-10-29 20:18:13,287   webelement   click   INFO：  click element (&#x27;css selector&#x27;, &#x27;#formLogin &gt; div:nth-child(4) &gt; div &gt; div &gt; span &gt; button&#x27;)
2021-10-29 20:18:23,549   webelement   find_element   ERROR：  element find error (&#x27;css selector&#x27;, &#x27;body &gt; div.introjs-tooltipReferenceLayer &gt; div &gt; div.introjs-tooltip-header &gt; a&#x27;)
<br/> -------------------------------Captured log call-------------------------------- <br/>INFO     main:webelement.py:80 打开chrome浏览器
INFO     main:webelement.py:90 跳转到地址：https://cloud.huaxiaerp.vip
INFO     main:webelement.py:80 打开chrome浏览器
INFO     main:webelement.py:90 跳转到地址：https://cloud.huaxiaerp.vip
INFO     main:webelement.py:80 打开chrome浏览器
INFO     main:webelement.py:90 跳转到地址：https://cloud.huaxiaerp.vip
INFO     main:webelement.py:104 find element #loginName
INFO     main:webelement.py:140 exec inout element:(&#x27;css selector&#x27;, &#x27;#loginName&#x27;) , key word:meteor
INFO     main:webelement.py:104 find element password
INFO     main:webelement.py:140 exec inout element:(&#x27;id&#x27;, &#x27;password&#x27;) , key word:admin123
INFO     main:webelement.py:104 find element #formLogin &gt; div:nth-child(4) &gt; div &gt; div &gt; span &gt; button
INFO     main:webelement.py:146 click element (&#x27;css selector&#x27;, &#x27;#formLogin &gt; div:nth-child(4) &gt; div &gt; div &gt; span &gt; button&#x27;)
ERROR    main:webelement.py:108 element find error (&#x27;css selector&#x27;, &#x27;body &gt; div.introjs-tooltipReferenceLayer &gt; div &gt; div.introjs-tooltip-header &gt; a&#x27;)<br/></div></td></tr></tbody>
      <tbody class="failed results-table-row">
        <tr>
          <td class="col-result">Failed</td>
          <td class="col-name">test_cases/test_report_add.py::test_add_report</td>
          <td class="col-duration">18.14</td>
          <td class="col-links"></td></tr>
        <tr>
          <td class="extra" colspan="4">
            <div><div><img src="D:\python0818\auto_frame\report\test_report_add.py_test_add_report.png" alt="screenshot" style="width:304px;height:228px;" οnclick="window.open(this.src)" align="right"/></div></div>
            <div class="log">self = &lt;page.index.Index_page object at 0x00000274288EFFD0&gt;<br/>elemnt = (&#x27;css selector&#x27;, &#x27;body &gt; div.introjs-tooltipReferenceLayer &gt; div &gt; div.introjs-tooltip-header &gt; a&#x27;)<br/><br/>    def find_element(self,elemnt):<br/>        if elemnt[0] not in [By.ID,By.CLASS_NAME,By.CSS_SELECTOR,By.XPATH,By.LINK_TEXT,By.NAME,By.PARTIAL_LINK_TEXT,By.TAG_NAME]:<br/>            logger.error(&#x27;find element error %s&#x27; %str(elemnt))<br/>            return<br/>    <br/>    <br/>        try:<br/>&gt;           WebDriverWait(self.driver, seting.WAIT_TIMEOUT).until(ec.visibility_of_element_located((elemnt)))<br/><br/>base\webelement.py:103: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;selenium.webdriver.support.wait.WebDriverWait (session=&quot;eb9c10f2548972b5e82073e610eeb3a3&quot;)&gt;<br/>method = &lt;selenium.webdriver.support.expected_conditions.visibility_of_element_located object at 0x000002742886A6A0&gt;<br/>message = &#x27;&#x27;<br/><br/>    def until(self, method, message=&#x27;&#x27;):<br/>        &quot;&quot;&quot;Calls the method provided with the driver as an argument until the \<br/>        return value is not False.&quot;&quot;&quot;<br/>        screen = None<br/>        stacktrace = None<br/>    <br/>        end_time = time.time() + self._timeout<br/>        while True:<br/>            try:<br/>                value = method(self._driver)<br/>                if value:<br/>                    return value<br/>            except self._ignored_exceptions as exc:<br/>                screen = getattr(exc, &#x27;screen&#x27;, None)<br/>                stacktrace = getattr(exc, &#x27;stacktrace&#x27;, None)<br/>            time.sleep(self._poll)<br/>            if time.time() &gt; end_time:<br/>                break<br/>&gt;       raise TimeoutException(message, screen, stacktrace)<br/><span class="error">E       selenium.common.exceptions.TimeoutException: Message:</span><br/><br/>D:\Python38\lib\site-packages\selenium\webdriver\support\wait.py:80: TimeoutException<br/><br/>During handling of the above exception, another exception occurred:<br/><br/>driver = &lt;selenium.webdriver.chrome.webdriver.WebDriver (session=&quot;eb9c10f2548972b5e82073e610eeb3a3&quot;)&gt;<br/><br/>    def test_add_report(driver):<br/>        # 新增一个仓库<br/>        login = Login_page(driver)<br/>        index = Index_page(driver)<br/>        report = Repost_page(driver)<br/>        login.login(&#x27;meteor&#x27;,&#x27;admin123&#x27;)<br/>&gt;       index.close_introjs_skipbutton()<br/><br/>test_cases\test_report_add.py:17: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/>page\index.py:107: in close_introjs_skipbutton<br/>    self.click((By.CSS_SELECTOR,&quot;body &gt; div.introjs-tooltipReferenceLayer &gt; div &gt; div.introjs-tooltip-header &gt; a&quot;))<br/>base\webelement.py:145: in click<br/>    self.find_element(element).click()<br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;page.index.Index_page object at 0x00000274288EFFD0&gt;<br/>elemnt = (&#x27;css selector&#x27;, &#x27;body &gt; div.introjs-tooltipReferenceLayer &gt; div &gt; div.introjs-tooltip-header &gt; a&#x27;)<br/><br/>    def find_element(self,elemnt):<br/>        if elemnt[0] not in [By.ID,By.CLASS_NAME,By.CSS_SELECTOR,By.XPATH,By.LINK_TEXT,By.NAME,By.PARTIAL_LINK_TEXT,By.TAG_NAME]:<br/>            logger.error(&#x27;find element error %s&#x27; %str(elemnt))<br/>            return<br/>    <br/>    <br/>        try:<br/>            WebDriverWait(self.driver, seting.WAIT_TIMEOUT).until(ec.visibility_of_element_located((elemnt)))<br/>            logger.info(&#x27;find element %s&#x27; %elemnt[1])<br/>            return self.driver.find_element(elemnt[0],elemnt[1])<br/>        except TimeoutException as ts:<br/>            # 如果定位元素超时，记录error日志<br/>            logger.error(&#x27;element find error %s&#x27; %str(elemnt))<br/>&gt;           raise TimeoutException<br/><span class="error">E           selenium.common.exceptions.TimeoutException: Message: None</span><br/><br/>base\webelement.py:109: TimeoutException<br/> -----------------------------Captured stderr setup------------------------------ <br/>2021-10-29 20:18:25,109   driver   __init__   INFO：  已经打开chrome浏览器
<br/> -------------------------------Captured log setup------------------------------- <br/>INFO     main:driver.py:33 已经打开chrome浏览器<br/> ------------------------------Captured stderr call------------------------------ <br/>2021-10-29 20:18:25,112   webelement   __init__   INFO：  打开chrome浏览器
2021-10-29 20:18:30,608   webelement   get   INFO：  跳转到地址：https://cloud.huaxiaerp.vip
2021-10-29 20:18:30,608   webelement   __init__   INFO：  打开chrome浏览器
2021-10-29 20:18:31,565   webelement   get   INFO：  跳转到地址：https://cloud.huaxiaerp.vip
2021-10-29 20:18:31,566   webelement   __init__   INFO：  打开chrome浏览器
2021-10-29 20:18:32,436   webelement   get   INFO：  跳转到地址：https://cloud.huaxiaerp.vip
2021-10-29 20:18:32,475   webelement   find_element   INFO：  find element #loginName
2021-10-29 20:18:32,625   webelement   send_keys   INFO：  exec inout element:(&#x27;css selector&#x27;, &#x27;#loginName&#x27;) , key word:meteor
2021-10-29 20:18:32,657   webelement   find_element   INFO：  find element password
2021-10-29 20:18:32,813   webelement   send_keys   INFO：  exec inout element:(&#x27;id&#x27;, &#x27;password&#x27;) , key word:admin123
2021-10-29 20:18:32,836   webelement   find_element   INFO：  find element #formLogin &gt; div:nth-child(4) &gt; div &gt; div &gt; span &gt; button
2021-10-29 20:18:32,925   webelement   click   INFO：  click element (&#x27;css selector&#x27;, &#x27;#formLogin &gt; div:nth-child(4) &gt; div &gt; div &gt; span &gt; button&#x27;)
2021-10-29 20:18:43,252   webelement   find_element   ERROR：  element find error (&#x27;css selector&#x27;, &#x27;body &gt; div.introjs-tooltipReferenceLayer &gt; div &gt; div.introjs-tooltip-header &gt; a&#x27;)
<br/> -------------------------------Captured log call-------------------------------- <br/>INFO     main:webelement.py:80 打开chrome浏览器
INFO     main:webelement.py:90 跳转到地址：https://cloud.huaxiaerp.vip
INFO     main:webelement.py:80 打开chrome浏览器
INFO     main:webelement.py:90 跳转到地址：https://cloud.huaxiaerp.vip
INFO     main:webelement.py:80 打开chrome浏览器
INFO     main:webelement.py:90 跳转到地址：https://cloud.huaxiaerp.vip
INFO     main:webelement.py:104 find element #loginName
INFO     main:webelement.py:140 exec inout element:(&#x27;css selector&#x27;, &#x27;#loginName&#x27;) , key word:meteor
INFO     main:webelement.py:104 find element password
INFO     main:webelement.py:140 exec inout element:(&#x27;id&#x27;, &#x27;password&#x27;) , key word:admin123
INFO     main:webelement.py:104 find element #formLogin &gt; div:nth-child(4) &gt; div &gt; div &gt; span &gt; button
INFO     main:webelement.py:146 click element (&#x27;css selector&#x27;, &#x27;#formLogin &gt; div:nth-child(4) &gt; div &gt; div &gt; span &gt; button&#x27;)
ERROR    main:webelement.py:108 element find error (&#x27;css selector&#x27;, &#x27;body &gt; div.introjs-tooltipReferenceLayer &gt; div &gt; div.introjs-tooltip-header &gt; a&#x27;)<br/></div></td></tr></tbody>
      <tbody class="failed results-table-row">
        <tr>
          <td class="col-result">Failed</td>
          <td class="col-name">test_cases/test_report_add.py::test_add_report_addr_is_not_null</td>
          <td class="col-duration">15.56</td>
          <td class="col-links"></td></tr>
        <tr>
          <td class="extra" colspan="4">
            <div><div><img src="D:\python0818\auto_frame\report\test_report_add.py_test_add_report_addr_is_not_null.png" alt="screenshot" style="width:304px;height:228px;" οnclick="window.open(this.src)" align="right"/></div></div>
            <div class="log">self = &lt;page.index.Index_page object at 0x0000027428959B20&gt;<br/>elemnt = (&#x27;css selector&#x27;, &#x27;body &gt; div.introjs-tooltipReferenceLayer &gt; div &gt; div.introjs-tooltip-header &gt; a&#x27;)<br/><br/>    def find_element(self,elemnt):<br/>        if elemnt[0] not in [By.ID,By.CLASS_NAME,By.CSS_SELECTOR,By.XPATH,By.LINK_TEXT,By.NAME,By.PARTIAL_LINK_TEXT,By.TAG_NAME]:<br/>            logger.error(&#x27;find element error %s&#x27; %str(elemnt))<br/>            return<br/>    <br/>    <br/>        try:<br/>&gt;           WebDriverWait(self.driver, seting.WAIT_TIMEOUT).until(ec.visibility_of_element_located((elemnt)))<br/><br/>base\webelement.py:103: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;selenium.webdriver.support.wait.WebDriverWait (session=&quot;831dbb34e44b47ee0f0e2aaa6595289e&quot;)&gt;<br/>method = &lt;selenium.webdriver.support.expected_conditions.visibility_of_element_located object at 0x0000027428959A60&gt;<br/>message = &#x27;&#x27;<br/><br/>    def until(self, method, message=&#x27;&#x27;):<br/>        &quot;&quot;&quot;Calls the method provided with the driver as an argument until the \<br/>        return value is not False.&quot;&quot;&quot;<br/>        screen = None<br/>        stacktrace = None<br/>    <br/>        end_time = time.time() + self._timeout<br/>        while True:<br/>            try:<br/>                value = method(self._driver)<br/>                if value:<br/>                    return value<br/>            except self._ignored_exceptions as exc:<br/>                screen = getattr(exc, &#x27;screen&#x27;, None)<br/>                stacktrace = getattr(exc, &#x27;stacktrace&#x27;, None)<br/>            time.sleep(self._poll)<br/>            if time.time() &gt; end_time:<br/>                break<br/>&gt;       raise TimeoutException(message, screen, stacktrace)<br/><span class="error">E       selenium.common.exceptions.TimeoutException: Message:</span><br/><br/>D:\Python38\lib\site-packages\selenium\webdriver\support\wait.py:80: TimeoutException<br/><br/>During handling of the above exception, another exception occurred:<br/><br/>driver = &lt;selenium.webdriver.chrome.webdriver.WebDriver (session=&quot;831dbb34e44b47ee0f0e2aaa6595289e&quot;)&gt;<br/><br/>    def test_add_report_addr_is_not_null(driver):<br/>    <br/>        login = Login_page(driver)<br/>        index = Index_page(driver)<br/>        report = Repost_page(driver)<br/>    <br/>        login.login(&#x27;meteor&#x27;, &#x27;admin123&#x27;)<br/>&gt;       index.close_introjs_skipbutton()<br/><br/>test_cases\test_report_add.py:31: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/>page\index.py:107: in close_introjs_skipbutton<br/>    self.click((By.CSS_SELECTOR,&quot;body &gt; div.introjs-tooltipReferenceLayer &gt; div &gt; div.introjs-tooltip-header &gt; a&quot;))<br/>base\webelement.py:145: in click<br/>    self.find_element(element).click()<br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;page.index.Index_page object at 0x0000027428959B20&gt;<br/>elemnt = (&#x27;css selector&#x27;, &#x27;body &gt; div.introjs-tooltipReferenceLayer &gt; div &gt; div.introjs-tooltip-header &gt; a&#x27;)<br/><br/>    def find_element(self,elemnt):<br/>        if elemnt[0] not in [By.ID,By.CLASS_NAME,By.CSS_SELECTOR,By.XPATH,By.LINK_TEXT,By.NAME,By.PARTIAL_LINK_TEXT,By.TAG_NAME]:<br/>            logger.error(&#x27;find element error %s&#x27; %str(elemnt))<br/>            return<br/>    <br/>    <br/>        try:<br/>            WebDriverWait(self.driver, seting.WAIT_TIMEOUT).until(ec.visibility_of_element_located((elemnt)))<br/>            logger.info(&#x27;find element %s&#x27; %elemnt[1])<br/>            return self.driver.find_element(elemnt[0],elemnt[1])<br/>        except TimeoutException as ts:<br/>            # 如果定位元素超时，记录error日志<br/>            logger.error(&#x27;element find error %s&#x27; %str(elemnt))<br/>&gt;           raise TimeoutException<br/><span class="error">E           selenium.common.exceptions.TimeoutException: Message: None</span><br/><br/>base\webelement.py:109: TimeoutException<br/> -----------------------------Captured stderr setup------------------------------ <br/>2021-10-29 20:18:44,873   driver   __init__   INFO：  已经打开chrome浏览器
<br/> -------------------------------Captured log setup------------------------------- <br/>INFO     main:driver.py:33 已经打开chrome浏览器<br/> ------------------------------Captured stderr call------------------------------ <br/>2021-10-29 20:18:44,877   webelement   __init__   INFO：  打开chrome浏览器
2021-10-29 20:18:47,915   webelement   get   INFO：  跳转到地址：https://cloud.huaxiaerp.vip
2021-10-29 20:18:47,916   webelement   __init__   INFO：  打开chrome浏览器
2021-10-29 20:18:48,880   webelement   get   INFO：  跳转到地址：https://cloud.huaxiaerp.vip
2021-10-29 20:18:48,880   webelement   __init__   INFO：  打开chrome浏览器
2021-10-29 20:18:49,680   webelement   get   INFO：  跳转到地址：https://cloud.huaxiaerp.vip
2021-10-29 20:18:49,711   webelement   find_element   INFO：  find element #loginName
2021-10-29 20:18:49,858   webelement   send_keys   INFO：  exec inout element:(&#x27;css selector&#x27;, &#x27;#loginName&#x27;) , key word:meteor
2021-10-29 20:18:49,898   webelement   find_element   INFO：  find element password
2021-10-29 20:18:50,028   webelement   send_keys   INFO：  exec inout element:(&#x27;id&#x27;, &#x27;password&#x27;) , key word:admin123
2021-10-29 20:18:50,059   webelement   find_element   INFO：  find element #formLogin &gt; div:nth-child(4) &gt; div &gt; div &gt; span &gt; button
2021-10-29 20:18:50,133   webelement   click   INFO：  click element (&#x27;css selector&#x27;, &#x27;#formLogin &gt; div:nth-child(4) &gt; div &gt; div &gt; span &gt; button&#x27;)
2021-10-29 20:19:00,442   webelement   find_element   ERROR：  element find error (&#x27;css selector&#x27;, &#x27;body &gt; div.introjs-tooltipReferenceLayer &gt; div &gt; div.introjs-tooltip-header &gt; a&#x27;)
<br/> -------------------------------Captured log call-------------------------------- <br/>INFO     main:webelement.py:80 打开chrome浏览器
INFO     main:webelement.py:90 跳转到地址：https://cloud.huaxiaerp.vip
INFO     main:webelement.py:80 打开chrome浏览器
INFO     main:webelement.py:90 跳转到地址：https://cloud.huaxiaerp.vip
INFO     main:webelement.py:80 打开chrome浏览器
INFO     main:webelement.py:90 跳转到地址：https://cloud.huaxiaerp.vip
INFO     main:webelement.py:104 find element #loginName
INFO     main:webelement.py:140 exec inout element:(&#x27;css selector&#x27;, &#x27;#loginName&#x27;) , key word:meteor
INFO     main:webelement.py:104 find element password
INFO     main:webelement.py:140 exec inout element:(&#x27;id&#x27;, &#x27;password&#x27;) , key word:admin123
INFO     main:webelement.py:104 find element #formLogin &gt; div:nth-child(4) &gt; div &gt; div &gt; span &gt; button
INFO     main:webelement.py:146 click element (&#x27;css selector&#x27;, &#x27;#formLogin &gt; div:nth-child(4) &gt; div &gt; div &gt; span &gt; button&#x27;)
ERROR    main:webelement.py:108 element find error (&#x27;css selector&#x27;, &#x27;body &gt; div.introjs-tooltipReferenceLayer &gt; div &gt; div.introjs-tooltip-header &gt; a&#x27;)<br/></div></td></tr></tbody>
      <tbody class="passed results-table-row">
        <tr>
          <td class="col-result">Passed</td>
          <td class="col-name">test_cases/test_login.py::test_login</td>
          <td class="col-duration">3.73</td>
          <td class="col-links"></td></tr>
        <tr>
          <td class="extra" colspan="4">
            <div class="log"> -----------------------------Captured stderr setup------------------------------ <br/>2021-10-29 20:17:42,527   driver   __init__   INFO：  已经打开chrome浏览器
<br/> -------------------------------Captured log setup------------------------------- <br/>INFO     main:driver.py:33 已经打开chrome浏览器<br/> ------------------------------Captured stderr call------------------------------ <br/>2021-10-29 20:17:42,529   webelement   __init__   INFO：  打开chrome浏览器
2021-10-29 20:17:45,777   webelement   get   INFO：  跳转到地址：https://cloud.huaxiaerp.vip
2021-10-29 20:17:45,825   webelement   find_element   INFO：  find element #loginName
2021-10-29 20:17:45,963   webelement   send_keys   INFO：  exec inout element:(&#x27;css selector&#x27;, &#x27;#loginName&#x27;) , key word:meteor
2021-10-29 20:17:45,997   webelement   find_element   INFO：  find element password
2021-10-29 20:17:46,156   webelement   send_keys   INFO：  exec inout element:(&#x27;id&#x27;, &#x27;password&#x27;) , key word:admin123
2021-10-29 20:17:46,182   webelement   find_element   INFO：  find element #formLogin &gt; div:nth-child(4) &gt; div &gt; div &gt; span &gt; button
2021-10-29 20:17:46,257   webelement   click   INFO：  click element (&#x27;css selector&#x27;, &#x27;#formLogin &gt; div:nth-child(4) &gt; div &gt; div &gt; span &gt; button&#x27;)
<br/> -------------------------------Captured log call-------------------------------- <br/>INFO     main:webelement.py:80 打开chrome浏览器
INFO     main:webelement.py:90 跳转到地址：https://cloud.huaxiaerp.vip
INFO     main:webelement.py:104 find element #loginName
INFO     main:webelement.py:140 exec inout element:(&#x27;css selector&#x27;, &#x27;#loginName&#x27;) , key word:meteor
INFO     main:webelement.py:104 find element password
INFO     main:webelement.py:140 exec inout element:(&#x27;id&#x27;, &#x27;password&#x27;) , key word:admin123
INFO     main:webelement.py:104 find element #formLogin &gt; div:nth-child(4) &gt; div &gt; div &gt; span &gt; button
INFO     main:webelement.py:146 click element (&#x27;css selector&#x27;, &#x27;#formLogin &gt; div:nth-child(4) &gt; div &gt; div &gt; span &gt; button&#x27;)<br/></div></td></tr></tbody></table></body></html>